\documentclass[12pt]{article}

\title{Literature Review}
\author{Wu Jiewei\\1110379019 \and Zhong Xianming\\1110379029 \and Zheng Yudi\\1110379028}
\date{\today}
\begin{document}
\maketitle

The virtualization concept has been around in some form since 1960s. It allows abstraction and isolation of lower level functionalities and underlying hardwares. During the last decade, virtualization has made a lot of progress that almost eliminated the barriers between operating systems and dramatically increased utilization of powerful servers. Nowadays, it is the key underlying technology in cloud infrastructures.

The most straightforward method of achieving virtualization is to provide a complete emulation of the underlying hardware in software, particularly involving the processor's instruction set architecture. IBM VM/370~\cite{gum1983system,seawright1979vm} first made use of virtualization to allow binary support for legacy code. VMware~\cite{sugerman2001virtualizing} and Connectix both made commodity PC hardware virtualized, allowing multiple operating systems to run on a single host. Disco applied a virtual machine monitor approach to making commodity operating system run efficiently on ccNUMA machines~\cite{bugnion1997disco,govil1999cellular}. All of above adopted a full virtualization strategy, which does not require a modification to the guest operating system. Although full virtualization strategy is able to support off-the-shelf operating systems in an easy way, it has detrimental consequences for performance.

An alternative way is to present each virtual machine with an abstraction that is similar but not identical to the underlying hardware. This approach has been called paravirtualization, in contrast to full virtualization, promises improved performance, but it does require modifications to the guest operating system. Denali~\cite{whitaker2002denali} modified the virtual architecture to safely multiplex a large number of untrusted Internet services on shared hardware, relieving Internet service adminstrators from the burden of acquiring and maintaining physical infrastructure. The Xen~\cite{barham2003xen} hypervisor also applied paravirtualization to the x86 architecture and solved the problem of supporting multiple address spaces and memory management at the virtualization layer. On the contrary of Denali's single-user single-application unprotected operating system, a virtual machine in Xen hosts a real operating system which may securely multiplex thousands of user-level processes. Later, Bryan Clark~\cite{clark2004xen} repeated the performance measurements of Xen and compared it with IBM zServer. More recently, hardware vendors have added extensions to the x86 architecture that make virtualization much easier. KVM~\cite{kivity2007kvm} leveraged these virtualization extensions to add a virtual machine monitor capability to Linux and brought an easy-to-use, fully featured integrated virtualization solution for Linux.

\bibliographystyle{num}
\bibliography{literature_review}
\end{document} 